home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / DEF / Define / Sections / def-section-timesheet < prev   
Text File  |  1998-10-23  |  8KB  |  267 lines

  1. def-section-timesheet section timesheets & beat/space rhythms
  2.  
  3. This is a very powerful way to define at once both the timesheet and the instrument rhythms, symbols and velocities. Both timesheets and rhythms can have multiple resolutions. with sets the timesheet resolution so that each column will represent the length symbol the with defines. A new with definition in between the timesheets will set up a new resolution value. Also multiple tonalities can be given, and the tonality- change string is valid for all the subsequent instruments til the next tonality-change definition. If the tonality string is missing then the atom, or a list of tonality names will be accepted.
  4.  
  5. The instrument can be a single instrument, or instrument group defined with def-orchestra. The properties are inherited to all sub-groups and instruments of the group.
  6.  
  7. (def-section-timesheet intro
  8.    ;
  9.    ; timesheet
  10.    ;
  11.    with 1/1
  12.    ;          !---!---!---!---!---!---!---!---!
  13.    tonality  ".    .       . . .   . . ...    " '((blues1 e 4) (blues2 f 4))
  14.    riff1     "--------------------------------" 
  15.    riffsup   "        ------------------------"
  16.    tonality '((blues1 e 2))
  17.    bass      "                        --------"
  18.    with 1/2
  19.    tonality mt-32
  20.    hihat1    "        ------------------------        --------      ----------"
  21.    hihat2    "                ----------------                ---------    ---"
  22.    ;
  23.    ; beats
  24.    ;
  25.    beat 1/16 ; !---!---!---!---!
  26.    hihat1     "----------------" '(f) with '(65 55 45 75)
  27.    hihat2     " - - - - - - - -" '(g) with '(65 55 45 75)
  28.    riff1      "-- --- -- - - --" '(a b -b c -c) with '(40 90 80 70)
  29.    bass       "-   -   - - --  " '((a b -b c)) with '(65 55 45 75)
  30.    beat 1/8t  
  31.    riffsup    "------                  " '(a) with '(30 40 50 60 70 80)
  32. )
  33.  
  34. Rhythm beat/space matrix resolution is set with beat. The value will represent each column. The beats are filled with symbols and velocities. They can be a list of values or a normal function call. Multiple beat/space resolutions can be used changing the beat value.
  35.  
  36. Test these:
  37.  
  38. (same-as zone of riff1 in intro)
  39. (same-as tonality of riff1 in intro)
  40.  
  41. If you'd like to use it just for defining rhythms, make it so:
  42.  
  43. (def-section-timesheet intro
  44.    ;
  45.    ; beats
  46.    ;
  47.    beat 1/16 ; !---!---!---!---!
  48.    hihat1     "----------------" '(f) with '(65 55 45 75)
  49.    hihat2     " - - - - - - - -" '(g) with '(65 55 45 75)
  50.    riff1      "-- --- -- - - --" '(a b -b c -c) with '(40 90 80 70)
  51.    bass       "-   -   - - --  " '((a b -b c)) with '(65 55 45 75)
  52.    beat 1/8t  
  53.    riffsup    "------                  " '(a) with '(30 40 50 60 70 80)
  54. )
  55.  
  56. (same-as length of hihat1 in intro)
  57. (same-as velocity of hihat1 in intro)
  58. (same-as symbol of hihat1 in intro)
  59.  
  60. (same-as length of hihat2 in intro)
  61. (same-as velocity of hihat2 in intro)
  62. (same-as symbol of hihat2 in intro)
  63.  
  64. (same-as length of riffsup in intro)
  65. (same-as velocity of riffsup in intro)
  66. (same-as symbol of riffsup in intro)
  67.  
  68. Using legato and staccato
  69.  
  70. Optional legato and staccato commands enable to adjust the durations. The options are listed below. If no legato or staccato is defined, then default duration is 100% staccato, which maintains compatibility with your old scores.
  71.  
  72.    staccato 100 --> duration is beat length
  73.    staccato 200 --> duration is double the (200%) beat length
  74.                               only 1/16 notes overlap
  75.    staccato 50 --> duration is 50 percent of beat length
  76.    legato 50 --> duration is 50 percent of the space to next note
  77.    legato 110 --> duration is 110 percent of the space to next note
  78.                           each note overlaps slightly
  79.  
  80. (def-section-timesheet sect-a
  81.    ;
  82.    ; timesheet
  83.    ;
  84.    with 1/1
  85.    ;          !---!---!---!---!---!---!---!---!
  86.    tonality  ".    .       . . .   . . ...    " '((blues1 e 4) (blues2 f 4))
  87.    bass      "--------------------------------" 
  88.    ;
  89.    ; beats
  90.    ;
  91.    beat 1/16 ; !---!---!---!---!
  92.    legato 50
  93.    bass       "-   -   - - --  " '(a b -b c) with '(65 55 45 75)
  94. )
  95.  
  96. (def-section sect-a
  97.    bass
  98.       channel 7
  99. )
  100.  
  101. (play-file-p "my song"
  102.    bass '(sect-a)
  103. )
  104.  
  105. You can have as many legato/staccato definitions as needed.
  106.  
  107. (def-section-timesheet sect-a
  108.    ;
  109.    ; timesheet
  110.    ;
  111.    with 1/1
  112.    ;          !---!---!---!---!---!---!---!---!
  113.    tonality  ".    .       . . .   . . ...    " '((blues1 e 4) (blues2 f 4))
  114.    bass      "--------------------------------" 
  115.    ;
  116.    ; beats
  117.    ;
  118.    beat 1/16 ; !---!---!---!---!
  119.    legato 50
  120.    bass1      "-   -   - - --  " '(a b -b c) with '(65 55 45 75)
  121.    bass2      "  -   -  - - -  " '(a b -b c) with '(65 55 45 75)
  122.    staccato 100
  123.    synth      "-   -   - - --  " '(a b -b c) with '(65 55 45 75)
  124. )
  125.  
  126. Other legato options:
  127.  
  128. ; no legato, note duration is the same as beat
  129.  
  130. (def-section-timesheet sect-a
  131.   ;
  132.   ; timesheet
  133.   ;
  134.   with 1/1
  135.   ;           !---!---!---!---!---!---!---!---!
  136.   tonality   ".  . . .  .   . " '((dorian e 4) (mixolydian b 4))
  137.   strings    "----------------" 
  138.   beat 1/16 ; !---!---!---!---!
  139.   strings    "-       -       " '(ace acf bcf -bdf) with '(65)
  140. )
  141.  
  142. (play-file-p "Legatos"
  143.    strings sect-a
  144. )
  145.  
  146. ; legato n, percentual legato, 100=play full length
  147.  
  148. (def-section-timesheet sect-a
  149.   ;
  150.   ; timesheet
  151.   ;
  152.   with 1/1
  153.   ;           !---!---!---!---!---!---!---!---!
  154.   tonality   ".  . . .  .   . " '((dorian e 4) (mixolydian b 4))
  155.   strings    "----------------" 
  156.   beat 1/16 ; !---!---!---!---!
  157.   legato 100
  158.   strings    "-       -       " '(ace acf bcf -bdf) with '(65)
  159. )
  160.  
  161. (play-file-p "Legatos"
  162.    strings sect-a
  163. )
  164.  
  165. ; legato (fix 1/8), note duration is fixed 1/8
  166.  
  167. (def-section-timesheet sect-a
  168.   ;
  169.   ; timesheet
  170.   ;
  171.   with 1/1
  172.   ;           !---!---!---!---!---!---!---!---!
  173.   tonality   ".  . . .  .   . " '((dorian e 4) (mixolydian b 4))
  174.   strings    "----------------" 
  175.   beat 1/16 ; !---!---!---!---!
  176.   legato (fix 1/8)
  177.   strings    "-       -       " '(ace acf bcf -bdf) with '(65)
  178. )
  179.  
  180. (play-file-p "Legatos"
  181.    strings sect-a
  182. )
  183.  
  184. ; legato (add 1/16), note duration is max legato plus 1/16
  185.  
  186. (def-section-timesheet sect-a
  187.   ;
  188.   ; timesheet
  189.   ;
  190.   with 1/1
  191.   ;           !---!---!---!---!---!---!---!---!
  192.   tonality   ".  . . .  .   . " '((dorian e 4) (mixolydian b 4))
  193.   strings    "----------------" 
  194.   beat 1/16 ; !---!---!---!---!
  195.   legato (add 1/16)
  196.   strings    "-       -       " '(ace acf bcf -bdf) with '(65)
  197. )
  198.  
  199. (play-file-p "Legatos"
  200.    strings sect-a
  201. )
  202.  
  203. ; legato (sub 1/8), note duration is max legato minus 1/8
  204. ; (same is achieved by (add -1/8)
  205.  
  206. (def-section-timesheet sect-a
  207.   ;
  208.   ; timesheet
  209.   ;
  210.   with 1/1
  211.   ;           !---!---!---!---!---!---!---!---!
  212.   tonality   ".  . . .  .   . " '((dorian e 4) (mixolydian b 4))
  213.   strings    "----------------" 
  214.   beat 1/16 ; !---!---!---!---!
  215.   legato (sub 1/8)
  216.   strings    "-       -       " '(ace acf bcf -bdf) with '(65)
  217. )
  218.  
  219. (play-file-p "Legatos"
  220.    strings sect-a
  221. )
  222.  
  223. ; legato (times 1.1), note duration is max legato * 1.1
  224. ; (same is achieved by legato 110)
  225.  
  226. (def-section-timesheet sect-a
  227.   ;
  228.   ; timesheet
  229.   ;
  230.   with 1/1
  231.   ;           !---!---!---!---!---!---!---!---!
  232.   tonality   ".  . . .  .   . " '((dorian e 4) (mixolydian b 4))
  233.   strings    "----------------" 
  234.   beat 1/16 ; !---!---!---!---!
  235.   legato (times 1.1)
  236.   strings    "-       -       " '(ace acf bcf -bdf) with '(65)
  237. )
  238.  
  239. (play-file-p "Legatos"
  240.    strings sect-a
  241. )
  242.  
  243. ; legato (divide 2), note duration is max legato divided by 2 
  244. ; (same is achieved by legato 50)
  245.  
  246. (def-section-timesheet sect-a
  247.   ;
  248.   ; timesheet
  249.   ;
  250.   with 1/1
  251.   ;           !---!---!---!---!---!---!---!---!
  252.   tonality   ".  . . .  .   . " '((dorian e 4) (mixolydian b 4))
  253.   strings    "----------------" 
  254.   beat 1/16 ; !---!---!---!---!
  255.   legato (divide 2)
  256.   strings    "-       -       " '(ace acf bcf -bdf) with '(65)
  257. )
  258.  
  259. (play-file-p "Legatos"
  260.    strings sect-a
  261. )
  262.  
  263. ; To have more specific control on lengths and durations define first
  264. ; def-section-timesheet sect-a, and then redefine length and duration
  265. ; with def-section sect-a.
  266.  
  267.